home *** CD-ROM | disk | FTP | other *** search
/ ADA Programming Guide / ADA Programming Guide.iso / ada_gwu / ivars.h < prev    next >
C/C++ Source or Header  |  1996-01-30  |  7KB  |  140 lines

  1. #define INIT(v) 
  2.  
  3.  
  4.  
  5.  
  6. extern   int *stack_segments [MAX_TASKS]; /* one stack segment for each task */
  7. extern   int task_stackptr [MAX_TASKS];   /* stack pointers for task stacks */
  8. extern   unsigned int data_segments_dim;  /* dimension of data_segments */
  9. extern   int **data_segments;             /* one data segment for each cunit */
  10. extern   int *data_seglen;                /* length of data segments */
  11. extern   unsigned int code_segments_dim;  /* dimension of code_segments */
  12. extern   char **code_segments;            /* segments containing code */
  13. extern   int *code_seglen;                /* length of code segments */
  14. extern   int *cur_stack;                  /* current stack segment */
  15. extern   int cur_stackptr;                /* stack ptr for cur_stack */
  16. extern   char *cur_code;                  /* current code segment */
  17. extern   int num_cunits;                  /* number of compilation units */
  18.  
  19.  
  20. extern   int cs;       /* index of current code_segment in code_segments */
  21. extern   int ip;       /* instruction pointer in cur_code */
  22. extern   int sp;       /* stack pointer */
  23. extern   int sfp;      /* stack frame pointer */
  24. extern   int bfp;      /* block frame pointer */
  25. extern   int exr;      /* exception register */
  26. extern   int lin;      /* line number for tracing */
  27.  
  28.  
  29. extern   int tp;                /* index of current task in stack_segments */
  30. extern   int *heap_next;        /* top of heap for allocation */
  31. extern   int heap_base;         /* segment number of heap */
  32. extern   int *heap_addr;        /* address of beginning of heap */
  33. extern   long next_clock;        /* next time to call clock_interrupts */
  34. extern   long time_offset;       /* cumulative skipped time for simulated time */
  35. extern   int next_clock_flag;   /* request to check the clock (task waiting) */
  36. extern   int simul_time_flag;   /* run with simulated time (versus real time) */
  37. extern   int time_slicing_flag; /* time slicing (vs schedule at system call) */
  38. extern   long time_slice;        /* length of time slice (500 ms default) */
  39. extern   int tasking_trace;     /* TRUE to trace tasking */
  40. extern   int rendezvous_trace;  /* TRUE to trace rendezvous */
  41. extern   int debug_trace;       /* TRUE for general debugging trace */
  42. extern   int exception_trace;   /* TRUE to trace exceptions */
  43. extern   int call_trace;        /* TRUE to trace calls */
  44. extern   int line_trace;        /* TRUE to trace line numbers */
  45. extern   int instruction_trace; /* TRUE to trace instructions */
  46. extern   int context_sw_trace;  /* TRUE to trace context switches */
  47. extern   int rr_flag;           /* TRUE to allow round-robin scheduling */
  48. extern   int rr_counter;        /* counter of statements - round_robin scheme*/
  49. extern   int rr_nb_max_stmts;   /* max value of rr_counter. */
  50.  
  51.  
  52. extern   unsigned int data_slots_dim;      /* dimension of data_slots */
  53. extern   char **data_slots;
  54. extern   unsigned int code_slots_dim;      /* dimension of code_slots */
  55. extern   char **code_slots;
  56. #ifdef MONITOR
  57. extern   char **code_slots_file;
  58. extern   char **code_slots_package;
  59. #endif
  60. extern   unsigned int exception_slots_dim; /* dimension of exception_slots */
  61. extern   char **exception_slots;
  62.  
  63.  
  64. extern   int max_mem;                      /* size of a heap segment */
  65. extern   int w;                            /* used by GET_WORD */
  66. extern   struct tt_fx_range *temp_template;/* fixed point work template */
  67.  
  68. extern   int bse,bas1,bas2,bas3,bas4;      /* address base values */
  69. extern   int off,off1,off2,off3,off4;      /* address offset values */
  70. extern   int *ptr,*ptr1,*ptr2,*ptr3,*ptr4; /* memory addresses */
  71. extern   int value,val1,val2;              /* operands for int operations */
  72. extern   int length1,length2;              /* for array operations */
  73. extern   long lvalue,lval1,lval2;          /* operands for long operations */
  74. extern   long fval1,fval2,fvalue;          /* operands for fixed operations */
  75. extern   float rvalue,rval1,rval2;         /* operands for float operations */
  76. extern   int val_high,val_low;             /* low/high of INT range */
  77. extern   int result,delta;                 /* used in fixed point */
  78. extern   int size;                         /* size of object */
  79. extern   int attribute;                    /* attribute code */
  80. extern   int slot;                         /* for create structure */
  81. extern   int component_size;               /* size of array component */
  82. extern   long now_time;                     /* current time */
  83. extern   int to_type;                      /* type from template */
  84. extern   int discr_list[MAX_DISCR];        /* accumulate list of discriminants */
  85. extern   int nb,i;                         /* loop counters etc */
  86. extern   int overflow;                     /* overflow flag from arith routines */
  87. extern   int nb_discr;                     /* number of discriminants */
  88. extern   int nb_dim;                       /* dimension of array */
  89. extern   int ratio,power;                  /* used in attribute processing */
  90. extern   int d,n;                          /* temporaries */
  91. extern   int old_cs;                       /* old value of cs */
  92. extern   int jump;                         /* jump address */
  93. extern   int lim;                          /* limit in for loop */
  94. extern   struct bf *bfptr;                 /* pointer to block frame */
  95. extern   int *tfptr1,*tfptr2;              /* pointers to task frames */
  96. extern   int cur_col;                      /* temporary for predef */
  97.  
  98. extern   int break_point;       /* next break point */  
  99.  
  100. extern   int fix_val1[20];      /* fixed point intermediate values */
  101. extern   int fix_val2[20];     
  102. extern   int fix_resu[20];     
  103. extern   int fix_temp[20];     
  104. extern   int mul_fact[20];     
  105. extern   int div_fact[20];     
  106.  
  107. extern   int arith_overflow;
  108. extern   int sgn;
  109. extern   int last_task;
  110. extern   int *free_list INIT((int *)0);
  111. extern   int raise_cs;
  112. extern   int raise_lin;
  113. extern   char *raise_reason;
  114.  
  115.  
  116.  
  117.  
  118. #define MAXFILES 20
  119. extern   struct afcb *(afcbs[MAXFILES]);
  120.  
  121.  
  122. extern   int operation;         /* operation for predef. set in the main loop */
  123. extern   int data_exception;    /* exception to raise on data error */
  124. extern   int filenum;           /* number of current file */
  125. extern   int standard_in_file;  /* index of standard input file */
  126. extern   int standard_out_file; /* index of standard output file */
  127. extern   int current_in_file;   /* index of current default input file */
  128. extern   int current_out_file;  /* index of current default output file */
  129. extern   int current_in_file_saved;   
  130. extern   int current_out_file_saved;  
  131. extern   int file_offset;       /* Offset due to file argument in the stack */
  132. extern   struct tfile *tfiles;  /* linked list of temporary files */
  133.  
  134.  
  135. extern   char work_string[4096];
  136.  
  137.  
  138. extern   int main_task_size;
  139. extern   int new_task_size;
  140.